﻿using System.Collections.Generic;

using AMC.SubstitutionCache.Models;
using AMC.SubstitutionCache.ViewModel;

using Orchard;
using Orchard.ContentManagement;

namespace AMC.SubstitutionCache.Services
{
    public interface ISubstitutionCacheStorageProvider : IDependency
    {
        void Set(string key, SubstitutionCacheItem cacheItem);

        void Remove(string key);
        void RemoveByTag(string tag);
        void RemoveByPart(ContentPart part);
        void RemoveAll();

        SubstitutionCacheItem GetCacheItem(string key);

        IEnumerable<StatisticsItemViewModel> GetStatisticsItemViewModel(int skip, int count, out int totalCount);
    }
}